package org.yelongframework.excel.poi.row;

import java.util.ArrayList;
import java.util.List;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.yelongframework.excel.cell.ExcelCell;
import org.yelongframework.excel.poi.cell.DefaultPOIExcelCell;
import org.yelongframework.excel.poi.cell.POIExcelCell;
import org.yelongframework.excel.poi.sheet.POIExcelSheet;

/**
 * 抽象实现
 * 
 * @since 1.0.0
 */
public class DefaultPOIExcelRow extends AbstractPOIExcelRow {

	// ==================================================构造器==================================================

	/**
	 * @param sheet 工作表
	 * @param row   行
	 */
	public DefaultPOIExcelRow(POIExcelSheet sheet, Row row) {
		super(sheet, row);
	}

	// ==================================================单元格==================================================

	@Override
	public POIExcelCell getCell(int colIndex) {
		Cell cell = getRow().getCell(colIndex);
		return null == cell ? null : new DefaultPOIExcelCell(this, cell);
	}

	@Override
	public List<ExcelCell> getCellList() {
		short firstCellNum = getRow().getFirstCellNum();
		short lastCellNum = getRow().getLastCellNum();
		List<ExcelCell> excelCellList = new ArrayList<>();
		for (int i = firstCellNum; i < lastCellNum; i++) {
			excelCellList.add(getCell(i));
		}
		return excelCellList;
	}

}
